<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <title>Version 1.43.0</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="icon" href="/favicon.ico" type="image/ico" />
  <link rel="stylesheet" type="text/css" href="/style-v2/section-boost.css" />

  <style type="text/css">
/*<![CDATA[*/
  #content .news-description ul {
    list-style: none;
  }
  #content .news-description ul ul {
    list-style: circle;
  }
  /*]]>*/
  </style>

  <!--[if IE 7]> <style type="text/css"> body { behavior: url(/style-v2/csshover3.htc); } </style> <![endif]-->
</head>
<!-- Don't edit this page! It's generated by site-tools/site-tools.py -->
<body>
  <div id="heading">
    <!--#include virtual="/common/heading.html" -->  </div>

  <div id="body">
    <div id="body-inner">
      <div id="content">
        <div class="section" id="intro">
          <div class="section-0">
            <div class="section-title">
              <h1>Version 1.43.0</h1>
            </div>

            <div class="section-body">
              <h2><span class=
              "news-title">Version 1.43.0</span></h2>

              <p><span class=news-date">May 6th, 2010 12:00 GMT</span></p>
              <p><a href="/doc/libs/1_43_0/">Documentation</a>
              <table class="download-table"><caption>Downloads</caption><tr><th scope="col">Platform</th><th scope="col">File</th></tr>
<tr><th scope="row" rowspan="2">unix</th><td><a href="http://sourceforge.net/projects/boost/files/boost/1.43.0/boost_1_43_0.tar.bz2">boost_1_43_0.tar.bz2</a></td></tr><tr><td><a href="http://sourceforge.net/projects/boost/files/boost/1.43.0/boost_1_43_0.tar.gz">boost_1_43_0.tar.gz</a></td></tr>
<tr><th scope="row" rowspan="2">windows</th><td><a href="http://sourceforge.net/projects/boost/files/boost/1.43.0/boost_1_43_0.7z">boost_1_43_0.7z</a></td></tr><tr><td><a href="http://sourceforge.net/projects/boost/files/boost/1.43.0/boost_1_43_0.zip">boost_1_43_0.zip</a></td></tr></table>
              <div class="news-description">
                <div class="description">



  <div id="version_1_43_0.new_libraries">
    <h3><span class="link">New Libraries</span></h3>
    <ul>
      <li>
        <div>
          <span class="library"><a href="/libs/functional/factory/index.html">Functional/factory</a>:</span>
  Function
          objects for dynamic and by-value construction, from Tobias Schwinger.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/functional/forward/index.html">Functional/forward</a>:</span>
  Function
          object adapters to address the forwarding problem, from Tobias Schwinger.
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_43_0.major_updates">
    <h3><span class="link">Major Updates</span></h3>
    <ul>
      <li>
        <div>
          <span class="library"><a href="/libs/range/index.html">Range</a>:</span>
  Boost.Range has
          undergone extensive updates that it include all of the features from the
          recently reviewed Boost.RangeEx, from Neil Groves.
          <ul>
            <li>
              <div>
                Range-based version of the full STL iterator based algorithms.
              </div>
            </li>
            <li>
              <div>
                Range adaptors which can be combined with range-based algorithms
                for unprecedented expressiveness and efficiency.
              </div>
            </li>
            <li>
              <div>
                New functions: irange, istream_range, join, combine.
              </div>
            </li>
          </ul>
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_43_0.updated_libraries">
    <h3><span class="link">Updated Libraries</span></h3>
    <ul>
      <li>
        <div>
          <span class="library"><a href="/libs/accumulators/index.html">Accumulators</a>:</span>
          <ul>
            <li>
              <div>
                Avoid premature template evaluation in operator overload return types.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/array/index.html">Array</a>:</span>
          <ul>
            <li>
              <div>
                Added support for SunCC compiler.
              </div>
            </li>
            <li>
              <div>
                Added 'fill' member function.
              </div>
            </li>
            <li>
              <div>
                Changed exception code to use boost::throw_exception.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span>
          <ul>
            <li>
              <div>
                Improved performance.
              </div>
            </li>
            <li>
              <div>
                Reduced compile times.
              </div>
            </li>
            <li>
              <div>
                Reduced the size of generated code.
              </div>
            </li>
            <li>
              <div>
                Extended the guarantee that background threads don't call user code
                to all asynchronous operations (<a href="https://svn.boost.org/trac/boost/ticket/3923">#3923</a>).
              </div>
            </li>
            <li>
              <div>
                Changed to use edge-triggered epoll on Linux.
              </div>
            </li>
            <li>
              <div>
                Changed to use <code><span class="identifier">timerfd</span></code>
                for dispatching timers on Linux, when available.
              </div>
            </li>
            <li>
              <div>
                Changed to use one-shot notifications with kqueue on Mac OS X and
                BSD platforms.
              </div>
            </li>
            <li>
              <div>
                Added a bitmask type <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">resolver_query_base</span><span class="special">::</span><span class="identifier">flags</span></code>
                as per the TR2 proposal. This type prevents implicit conversion from
                <code><span class="keyword">int</span></code> to <code><span class="identifier">flags</span></code>, allowing the compiler to
                catch cases where users incorrectly pass a numeric port number as
                the service name.
              </div>
            </li>
            <li>
              <div>
                Added <code><span class="preprocessor">#define</span> <span class="identifier">NOMINMAX</span></code> for all Windows compilers.
                Users can define <code><span class="identifier">BOOST_ASIO_NO_NOMINMAX</span></code>
                to suppress this definition (<a href="https://svn.boost.org/trac/boost/ticket/3901">#3901</a>).
              </div>
            </li>
            <li>
              <div>
                Fixed a bug where 0-byte asynchronous reads were incorrectly passing
                an <code><span class="identifier">error</span><span class="special">::</span><span class="identifier">eof</span></code> result to the completion handler
                (<a href="https://svn.boost.org/trac/boost/ticket/4023">#4023</a>).
              </div>
            </li>
            <li>
              <div>
                Changed the <code><span class="identifier">io_control</span><span class="special">()</span></code> member functions to always call
                <code><span class="identifier">ioctl</span></code> on the underlying
                descriptor when modifying blocking mode (<a href="https://svn.boost.org/trac/boost/ticket/3307">#3307</a>).
              </div>
            </li>
            <li>
              <div>
                Changed the resolver implementation to longer require the typedefs
                <code><span class="identifier">InternetProtocol</span><span class="special">::</span><span class="identifier">resolver_query</span></code>
                and <code><span class="identifier">InternetProtocol</span><span class="special">::</span><span class="identifier">resolver_iterator</span></code>,
                as neither typedef is part of the documented <code><span class="identifier">InternetProtocol</span></code>
                requirements. The corresponding typedefs in the <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span></code>,
                <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">udp</span></code> and <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">icmp</span></code>
                classes have been deprecated.
              </div>
            </li>
            <li>
              <div>
                Fixed out-of-band handling for reactors not based on <code><span class="identifier">select</span><span class="special">()</span></code>.
              </div>
            </li>
            <li>
              <div>
                Added new <code><span class="identifier">BOOST_ASIO_DISABLE_THREADS</span></code>
                macro that allows Asio's threading support to be independently disabled.
              </div>
            </li>
            <li>
              <div>
                Minor documentation improvements.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/fusion/index.html">Fusion</a>:</span>
          <ul>
            <li>
              <div>
                Added new macros for adapting or defining custom types. See the
                <a href="/libs/fusion/doc/html/fusion/change_log.html">Changelog</a>
                for details.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/iostreams/index.html">Iostreams</a>:</span>
          <ul>
            <li>
              <div>
                Minor fixes (<a href="https://svn.boost.org/trac/boost/ticket/2505">#2505</a>,
                <a href="https://svn.boost.org/trac/boost/ticket/3839">#3839</a>,
                <a href="https://svn.boost.org/trac/boost/ticket/3953">#3953</a>,
                <a href="https://svn.boost.org/trac/boost/ticket/3723">#3723</a>,
                <a href="https://svn.boost.org/trac/boost/ticket/3969">#3969</a>,
                <a href="https://svn.boost.org/trac/boost/ticket/4135">#4135</a>).
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span>
          <ul>
            <li>
              <div>
                <a href="/libs/serialization/doc/serialization.html#constructors">Serialization
                of non default constructible values</a> is now properly supported
                through user-provided facilities <code><span class="identifier">save_construct_data</span></code>
                and <code><span class="identifier">load_construct_data</span></code>.
                <code><span class="identifier">multi_index_container</span></code>
                serialization <a href="/libs/serialization/doc/tutorial.html#versioning">class
                version</a> has been bumped from 1 to 2.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/proto/index.html">Proto</a>:</span>
          <ul>
            <li>
              <div>
                Minor change in behavior: non-const expression self-assignment creates
                an assign node. See Proto's <a href="/doc/html/proto/appendices.html#boost_proto.appendices.release_notes.boost_1_43">Release
                Notes</a> for details.
              </div>
            </li>
            <li>
              <div>
                Minor change to recommended expression extension mechanism: use
                <code><span class="identifier">BOOST_PROTO_EXTENDS_USING_ASSIGN</span><span class="special">()</span></code>. See Proto's <a href="/doc/html/proto/appendices.html#boost_proto.appendices.release_notes.boost_1_43">Release
                Notes</a> for details.
              </div>
            </li>
            <li>
              <div>
                Fix error in invocation of callable monomorphic function objects
                in Proto transforms.
              </div>
            </li>
            <li>
              <div>
                Fix misc const correctness issues, work around fusion bug.
              </div>
            </li>
            <li>
              <div>
                Add non-const function call overloads to proto terminals.
              </div>
            </li>
            <li>
              <div>
                Add a default constructor to <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">literal</span><span class="special">&lt;&gt;</span></code>.
              </div>
            </li>
            <li>
              <div>
                Do not use deprecated config macros.
              </div>
            </li>
            <li>
              <div>
                Add <code><span class="identifier">proto</span><span class="special">::</span><span class="identifier">assert_matches</span><span class="special">()</span></code>
                function and friends to <tt>&lt;boost/proto/debug.hpp&gt;</tt>.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">functional</span><span class="special">::</span><span class="identifier">make_expr</span><span class="special">&lt;&gt;</span></code>
                and <code><span class="identifier">functional</span><span class="special">::</span><span class="identifier">unpack_expr</span><span class="special">&lt;&gt;</span></code>
                return const-qualified rvalues.
              </div>
            </li>
            <li>
              <div>
                Add documentation for Expr and Domain concepts.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/random/index.html">Random</a>:</span>
          <ul>
            <li>
              <div>
                Put the implementation of random_device in a compiled lib, and added
                Windows support.
              </div>
            </li>
            <li>
              <div>
                Rewrote the documentation using Quickbook/Doxygen/Boostbook and brought
                it up to date.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/spirit/index.html">Spirit</a>:</span>
  Spirit V2.3,
          see the '<a href="/doc/libs/1_43_0/libs/spirit/doc/html/spirit/what_s_new/spirit_2_3.html">What's
          New</a>' section for details.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/thread/index.html">Thread</a>:</span>
          <ul>
            <li>
              <div>
                Uses <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throw_exception</span></code> for all exceptions
                except <code><span class="identifier">thread_interrupted</span></code>
              </div>
            </li>
            <li>
              <div>
                Added fix for issue 2742
              </div>
            </li>
            <li>
              <div>
                Optimizations to mutex locks and <code><span class="identifier">call_once</span></code>
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/unordered/index.html">Unordered</a>:</span>
          <ul>
            <li>
              <div>
                <code><span class="identifier">erase_return_void</span></code>
                is now <code><span class="identifier">quick_erase</span></code>
                (<a href="http://svn.boost.org/trac/boost/ticket/3966">#3966</a>).
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/uuid/index.html">Uuid</a>:</span>
          <ul>
            <li>
              <div>
                Split generators into separate files.
              </div>
            </li>
            <li>
              <div>
                Fixed bug in basic_random_generator (<a href="https://svn.boost.org/trac/boost/ticket/3971">#3971</a>).
              </div>
            </li>
            <li>
              <div>
                Updated documentation.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span>
  See the <a href="/libs/wave/ChangeLog">Changelog</a>
          for details.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span>
          <ul>
            <li>
              <div>
                Add missing include to <tt>&lt;boost/xpressive/regex_error.hpp&gt;</tt>.
              </div>
            </li>
          </ul>
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_43_0.build_system">
    <h3><span class="link">Build System</span></h3>
    <ul>
      <li>
        <div>
          When cross-compiling to GNU targets, static libraries are properly created.
          Previously, using such libraries resulted in <tt>Archive has no index</tt>
          error.
        </div>
      </li>
      <li>
        <div>
          The naming of DLL and import libraries with gcc compiler on Windows, both
          mingw and cygwin, now matches default conventions of those environments.
          Previously, the naming scheme was the same as for other Windows compilers.
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_43_0.updated_tools">
    <h3><span class="link">Updated Tools</span></h3>
    <ul>
      <li>
        <div>
          <span class="library"><a href="/tools/quickbook/index.html">Quickbook</a>:</span>
          <ul>
            <li>
              <div>
                Unicode escape characters.
              </div>
            </li>
            <li>
              <div>
                Support the UTF-8 byte order mark.
              </div>
            </li>
            <li>
              <div>
                Disallow <code><span class="special">[</span></code> in simple
                markup. Fixes some errors with mismatched punctuation.
              </div>
            </li>
            <li>
              <div>
                Add a command line flag (<code><span class="special">-</span><span class="identifier">D</span></code>) to define macros at the command
                line.
              </div>
            </li>
            <li>
              <div>
                Improved post-processor output.
              </div>
            </li>
            <li>
              <div>
                Check that <code><span class="special">[</span><span class="identifier">section</span><span class="special">]</span></code> and <code><span class="special">[</span><span class="identifier">endsect</span><span class="special">]</span></code>
                tags are balanced in templates.
              </div>
            </li>
          </ul>
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_43_0.compilers_tested">
    <h3><span class="link">Compilers Tested</span></h3>
    <p>
      Boost's primary test compilers are:
    </p>
    <ul>
      <li>
        <div>
          OS X:
          <ul>
            <li>
              <div>
                GCC 4.0.1 on Intel Leopard.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          Linux:
          <ul>
            <li>
              <div>
                GCC 4.4.1 on Ubuntu Linux.
              </div>
            </li>
            <li>
              <div>
                GCC 4.4 on 64-bit Suse.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          Windows:
          <ul>
            <li>
              <div>
                Visual C++ 8.0 SP1 and 9.0 SP1 on Windows XP.
              </div>
            </li>
            <li>
              <div>
                GCC 4.3.3, using Mingw
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          FreeBSD:
          <ul>
            <li>
              <div>
                GCC 4.2.1, 32 and 64 bit.
              </div>
            </li>
          </ul>
        </div>
      </li>
    </ul>
    <p>
      Boost's additional test compilers include:
    </p>
    <ul>
      <li>
        <div>
          Linux:
          <ul>
            <li>
              <div>
                Intel 10.1, 11.1 on 32 bit Red Hat Enterprise Linux.
              </div>
            </li>
            <li>
              <div>
                Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux.
              </div>
            </li>
            <li>
              <div>
                GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3 on Red Hat Enterprise Linux.
              </div>
            </li>
            <li>
              <div>
                GCC 4.3.4, 4.4.3 with C++0x extensions on Red Hat Enterprise Linux.
              </div>
            </li>
            <li>
              <div>
                QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise
                Linux.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          OS X:
          <ul>
            <li>
              <div>
                Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard.
              </div>
            </li>
            <li>
              <div>
                GCC 4.0.1 on Intel Leopard.
              </div>
            </li>
            <li>
              <div>
                Clang from subversion.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          Windows:
          <ul>
            <li>
              <div>
                Visual C++ 8,0, 9,0 on 32-bit XP.
              </div>
            </li>
            <li>
              <div>
                Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0.
              </div>
            </li>
            <li>
              <div>
                Visual C++ 10.0 on XP.
              </div>
            </li>
            <li>
              <div>
                Visual C++ 10.0 on 64-bit Windows 7.
              </div>
            </li>
            <li>
              <div>
                Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010).
              </div>
            </li>
            <li>
              <div>
                Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit.
              </div>
            </li>
            <li>
              <div>
                GCC 4.3.3 on Mingw.
              </div>
            </li>
            <li>
              <div>
                GCC 4.4.3 on Mingw, with and without C++0x extensions.
              </div>
            </li>
            <li>
              <div>
                GCC 4.5 on Mingw.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          AIX:
          <ul>
            <li>
              <div>
                IBM XL C/C++ Enterprise Edition, V10.1.0.0, on AIX Version 5.3.0.40.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          FreeBSD:
          <ul>
            <li>
              <div>
                GCC 4.2.1 on FreeBSD 7.2, 64 bit.
              </div>
            </li>
            <li>
              <div>
                GCC 4.2.1 on FreeBSD 8.0, 32 bit.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          Solaris:
          <ul>
            <li>
              <div>
                Sun C++ 5.10 on Solaris 5.10.
              </div>
            </li>
          </ul>
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_43_0.acknowledgements">
    <h3><span class="link">Acknowledgements</span></h3>
    <p>
      <a href="/users/people/beman_dawes.html">Beman Dawes</a>, Eric Niebler,
      <a href="/users/people/rene_rivera.html">Rene Rivera</a>, Daniel James
      and Vladimir Prus managed this release.
    </p>
  </div>
</div>
              </div>
            </div>
          </div>
        </div>
      </div>

      <div id="sidebar">
        <!--#include virtual="/common/sidebar-common.html" --><!--#include virtual="/common/sidebar-boost.html" -->      </div>

      <div class="clear"></div>
    </div>
  </div>

  <div id="footer">
    <div id="footer-left">
      <div id="copyright">
        <p>Copyright Rene Rivera 2006-2007.</p>
      </div><!--#include virtual="/common/footer-license.html" -->    </div>

    <div id="footer-right">
      <!--#include virtual="/common/footer-banners.html" -->    </div>

    <div class="clear"></div>
  </div>
</body>
</html>
